func void HEROFX_RED() {
	if(PAL_1012_Hero.attribute[ATR_HITPOINTS] != 0) {
		Wld_PlayEffect(B_GetHeroFX(RED), PAL_1012_Hero, PAL_1012_Hero, 0, 0, 0, FALSE );
		DF_AddFunc("HEROFX_RED",1);
	};
};

func void HEROFX_BLUE() {
	if(DJG_2012_Hero.attribute[ATR_HITPOINTS] != 0) {
		Wld_PlayEffect(B_GetHeroFX(BLUE), DJG_2012_Hero, DJG_2012_Hero, 0, 0, 0, FALSE );
		DF_AddFunc("HEROFX_BLUE",1);
	};
};

func void B_ReviveHero (var int color)
{
	PrintDebug("BOTK: REVIVEHERO: Start");
	if (PlayerColor == color) {
		if (HeroSpawned == TRUE) { B_Message(NEWS_MY_HEROREVIVED); }
		else { HeroSpawned = TRUE; };
	};
	if (color == RED) {
		Wld_InsertNpc (PAL_1012_Hero,SpawnWaypoint);
		DF_AddFunc("HEROFX_RED",1);
	} 
	else if (color == BLUE) {
		Wld_InsertNpc (DJG_2012_Hero,SpawnWaypoint);
		DF_AddFunc("HEROFX_BLUE",1);
	};
};

func void B_ReviveBlueHero ()
{
	B_ReviveHero(BLUE);
};

func void B_ReviveRedHero ()
{
	B_ReviveHero(RED);
};